import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;

public class Deduplication {
    public static int[] deDuplication(int[] array) {
        //把数据加入Set集合之中，利用Set集合的元素互不相同进行去重
        HashSet<Integer> hashSet = new HashSet<>();

        for (int i = 0; i < array.length; i++) {
            hashSet.add(array[i]);
        }

        //代码走到这里，hashSet之中存储的是数组中已经去重的元素
        int newLength = hashSet.size();
        int[] result = new int[newLength];
        Iterator<Integer> iterator = hashSet.iterator();

        //利用迭代器进行遍历
        //将原数组中不重复的元素存储到一个新的数组之中
        int index = 0;
        while(iterator.hasNext()) {
            result[index++] = iterator.next();
        }
        //返回新的数组
        return result;
    }

    public static void main(String[] args) {
        int length = 50; // 数组长度
        int[] array = new int[length];
        Random random = new Random();

        // 限制元素范围为0-10（仅11种可能值），确保大量重复
        for (int i = 0; i < length; i++) {
            array[i] = random.nextInt(11); // 生成0-10的随机整数
        }

        System.out.println(Arrays.toString(array));

        //进行去重操作
        int[] result = deDuplication(array);

        System.out.println(Arrays.toString(result));
    }
}
